Many computer programs are written in a reusable style, where functions may be called using variables that may change each time the function may be called. Such a programming style has many uses, such as being able to test and verify each function independently, as well as having sections of executable code that may be reused over and over.
In order to create executable code from such a program, a compiler and linker may create and track all of the connections between many different sections of code.